import { IParam } from '../../common';
import { IViewLogicInput } from '../../modules';
import { IWFDynaEditViewAbility } from '../ability';
import { IWFDynaEditViewStore } from '../store';
import { IDEViewController } from './i-de-view-controller';

/**
 * 工作流动态编辑视图控制器基类
 *
 * @export
 * @interface IWFDynaEditViewController
 * @extends {IViewController<S, A>}
 * @template S
 * @template A
 */
export interface IWFDynaEditViewController<
	S extends IWFDynaEditViewStore,
	A extends IWFDynaEditViewAbility
> extends IDEViewController<S, A> {
	/**
	 * 处理行为点击
	 *
	 * @param {MouseEvent} event
	 * @param {IParam} action
	 * @memberof IWFDynaEditViewController
	 */
	handleActionClick(event: MouseEvent, action: IParam): void;
    /**
     * 处理工具栏点击
     *
     * @param {MouseEvent} event
     * @param {IViewLogicInput} logic
     * @memberof IWFDynaEditViewController
     */
    handleToolbarItemClick(event: MouseEvent, logic: IViewLogicInput): void;
	/**
	 * 处理动态工具栏点击
	 *
	 * @param {IParam} toolbarItem
	 * @memberof IWFDynaEditViewController
	 */
	handleDynamicToolbarClick(toolbarItem: IParam): void;
}
